// Copyright (c) 2020 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

/**
*@describe:
*@author wfl19/Kristas
*@date 2021/12/17
 */

package app_context

import (
	"gitee.com/kristas/booting-go/framework/core/bean"
	"reflect"
)

type ApplicationContext interface {
	GetBean(name string) (interface{}, error)
	IsBeanExists(name string) bool
	RegisterBean(bean interface{})
	RegisterBeanWithName(name string, bean interface{})
	RegisterFactoryBean(bean bean.FactoryBean)
	GetBeansByInterfaceType(typ reflect.Type) []interface{}
	GetBeanByInterface(a interface{}) interface{}
	GetBeansByInterface(a interface{}) []interface{}
	GetAllBeans() []bean.Bean
	GetAllBeansByInterface(a interface{}) []bean.Bean
}
